home *** CD-ROM | disk | FTP | other *** search
-
-
-
- - 1 -
-
-
-
- 1. _B_u_g_s__F_i_x_e_d__i_n__P_a_t_c_h__S_G_0_0_0_0_5_5_6
-
- Patch 556 fixes the following bugs on top of those
- previously fixed in patches SG0000364 (see Chapter 4) and
- SG0000170 (see Chapter 5):
-
- _S_y_n_t_a_x _A_n_a_l_y_s_i_s
-
- +o Fixed a problem with premature or unnecessary
- instantiation of member functions of template classes,
- which would cause spurious syntax errors about
- incomplete classes or invalid operators for template
- parameters. (281526, 275650)
-
- +o We now allow explicit destructor calls on template type
- parameters using the ~~~~TTTT(((()))) syntax (for a "template
- <class T> class Foo {...}"). (233851)
-
- +o Fixed a problem matching template types in the presence
- of typedefs and const-qualified types. (279898)
-
- +o The compiler now passes on friendship to classes nested
- within the friend class. (278785)
-
- +o CC now correctly performs type-checking of the two
- dependent expressions when the type of one of them is a
- const-qualified version of the other. (278769)
-
- +o CC will now call an operator T& for a template<class T>
- class if an instance of that class is cast to a T&
- (284867).
-
- +o CC used to crash when it encountered an array of
- classes whose constructor takes a class type as an
- argument with a default value. This is now fixed.
- (279896, 281237)
-
- +o CC no longer gives a spurious error when it encounters
- a #pragma instantiate during "CC -M". (271665)
-
- +o DCC no longer crashes if it encounters a struct with a
- nested typedef that points back to the struct. (280910)
-
- _C_o_d_e _G_e_n_e_r_a_t_i_o_n
-
- +o Casts between pointer-to-member-function types caused
- bad code to be generated, causing the compiler backend
- (ugen or uopt) to crash. (281857).
-
- +o Expressions of the form "long *= long long" were being
- incorrectly computed. We now generate correct code for
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- them. (276616)
-
- +o We now correctly generate tttthhhhiiiissss pointers when calling an
- inherited ooooppppeeeerrrraaaattttoooorrrr(((()))) from a non-leftmost base class.
- (280806, 252593).
-
- +o Volatile arrays (declared arrays of volatile types) are
- now handled correctly (i.e. we do not optimize accesses
- to them). (278794)
-
- _O_t_h_e_r
-
- +o The prelinker can now look for available template
- instantiations in libraries specified using the "-l"
- flag on the link (or edg_prelink) line. (274682)
-
- +o We now correctly handle CC's ----oooobbbbjjjjeeeeccccttttlllliiiisssstttt option in the
- template prelinker (i.e. objects in the -objectlist
- file that need to have templates instantiated are
- handled correctly). (253983)
-
- +o The template instantiation mechanism now correctly
- handles the case where template instantiations in DSOs
- may have the HIDDEN attribute (and thus shouldn't be
- counted as available instantiations). (271006)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-